package io.kiki.sba.registry.server.data_store.slot;

import io.kiki.sba.registry.common.model.Tuple;
import io.kiki.sba.registry.common.model.slot.BaseSlotStatus;
import io.kiki.sba.registry.common.model.slot.Slot;
import io.kiki.sba.registry.common.model.slot.SlotAccess;

import java.util.List;


public interface SlotAccessor {

    int slotOf(String dataInfoId);

    Slot getSlot(String dataCenter, int slotId);

    SlotAccess checkSlotAccess(String dataCenter, int slotId, long srcSlotEpoch, long srcLeaderEpoch);

    boolean isLeader(String dataCenter, int slotId);

    boolean isFollower(String dataCenter, int slotId);

    Tuple<Long, List<BaseSlotStatus>> getslotsEpochAndStatuses(String dataCenter);
}
